#!/usr/bin/env python3
"""
AutoGen 基础示例项目
这是一个使用 Microsoft AutoGen 框架的简单示例项目
"""

import os
from autogen_agentchat import agents
from dashscope import Generation
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

def create_qwen_client():
    """创建通义千问客户端"""
    # 设置通义千问API密钥
    api_key = os.getenv("QWEN_API_KEY")
    if not api_key:
        raise ValueError("请设置 QWEN_API_KEY 环境变量")
    
    # 通义千问使用 Generation 类
    return Generation()

def create_agents():
    """创建 AutoGen 智能体"""
    qwen_client = create_qwen_client()
    
    # 创建用户代理
    user_proxy = agents.UserProxyAgent(
        name="user_proxy",
        system_message="A human admin.",
        code_execution_config={
            "last_n_messages": 2,
            "work_dir": "groupchat",
            "use_docker": False,
        },
        human_input_mode="NEVER",
    )
    
    # 创建助手代理
    assistant = agents.AssistantAgent(
        name="assistant",
        model_client=qwen_client,
        model_client_stream=False,
    )
    
    return user_proxy, assistant

def main():
    """主函数"""
    print("🤖 AutoGen 项目启动中...")
    
    # 检查 API 密钥
    if not os.getenv("QWEN_API_KEY"):
        print("❌ 错误: 请设置 QWEN_API_KEY 环境变量")
        print("💡 提示: 复制 env.example 为 .env 并填入你的通义千问 API 密钥")
        return
    
    try:
        # 创建智能体
        user_proxy, assistant = create_agents()
        
        print("✅ AutoGen 智能体创建成功!")
        print("📝 你可以开始与智能体对话了")
        
        # 启动对话
        user_proxy.initiate_chat(
            assistant,
            message="你好! 请介绍一下你自己。",
        )
        
    except Exception as e:
        print(f"❌ 错误: {e}")
        print("💡 请检查你的 API 密钥和网络连接")

if __name__ == "__main__":
    main()
